/*----------------------------------------------------------------
// Copyright (C) 2011  博览财经资讯服务有限公司
// 版权所有
// 文件名：IDBComm
// 文件功能描述：DbHelper调用的产生数据库对象的公共接口
// 
// 创建标识:王家新
// 
// 修改标识：
// 修改描述：
//         
// 修改标识：
// 修改描述：
//----------------------------------------------------------------*/

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.Common;

namespace Aij1.Utils
{
    /// <summary>
    /// DbHelper调用的产生数据库对象的公共接口
    /// </summary>
    public interface IDBComm
    {
        DBHelper Helper { get; set; }

        /// <summary>
        /// 产生数据库连接
        /// </summary>
        /// <param name="connectionString"></param>
        /// <returns></returns>
        DbConnection CreateConnection();

        /// <summary>
        /// 产生数据库命令对象
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="connection"></param>
        /// <returns></returns>
        DbCommand CreateCommand(string sql);

        /// <summary>
        /// 产生DataAdapter
        /// </summary>
        /// <param name="command"></param>
        /// <returns></returns>
        DbDataAdapter CreateDataAdapter(DbCommand command);

        /// <summary>
        /// 产生参数
        /// </summary>
        /// <param name="parameterName"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        DbParameter CreateParameter(string parameterName, object value);

        /// <summary>
        /// 产生二进制对象参数
        /// </summary>
        /// <param name="parameterName"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        DbParameter CreateImageParameter(string parameterName, byte[] value);

        double GetDBSize();

        void ShrinkDB();
    }
}

